#include "widget.h"
#include "ui_widget.h"

#include <QSlider>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    // 对象实例化
    mediaPlayer = new QMediaPlayer(this);
    videoWidget = new QVideoWidget(this);

    // 设置播放画面的窗口
    videoWidget->setMinimumSize(960, 540);

    // 实例化窗口布局
    this->vbox = new QVBoxLayout(this);
    this->setLayout(this->vbox);

    // 实例化选择视频按钮和播放按钮
    chooseButton = new QPushButton("选择视频", this);
    playButton = new QPushButton(this);

    // 设置图标替代文件
    playButton->setIcon(this->style()->standardIcon(QStyle::SP_MediaPlay));

    // 实例化一个水平布局，将两个按钮控件放入水平布局
    QHBoxLayout *hbox = new QHBoxLayout;
    hbox->addWidget(chooseButton);
    hbox->addWidget(playButton);

    // 将播放窗口和水平布局都添加到垂直布局中
    vbox->addWidget(videoWidget);
    vbox->addLayout(hbox);

    // 连接信号槽
    connect(chooseButton, &QPushButton::clicked, this, &Widget::chooseVideo);
    connect(playButton, &QPushButton::clicked, mediaPlayer, &QMediaPlayer::play);
}

Widget::~Widget()
{
    delete ui;
}

void Widget::chooseVideo()
{
    // 选择视频，返回一个播放视频的名字
    QString name = QFileDialog::getOpenFileName(this, "选择视频", ".", "WMV(*.wmv)");

    // 设置媒体声音
    mediaPlayer->setMedia(QUrl(name));

    // 输出视频画面
    mediaPlayer->setVideoOutput(videoWidget);

    // 播放
//    mediaPlayer->play();
}

